java outOfMemoryError 与 stringbuilder
全部标签 您好,我有以下方法在评论留言箱时显示促销线:publicStringgetShoutboxUnderline(){StringBuilderbuilder=newStringBuilder();builder.append("watch");builder.append("on");builder.append("youtube");builder.append(":");builder.append("Mickey");builder.append("en");builder.append("de");builder.append("stomende");builder.append
StringBuffer和StringBuilder之间的主要区别是什么?在决定其中任何一项时是否存在任何性能问题? 最佳答案 StringBuffer同步,StringBuilder不是。 关于java-StringBuilder和StringBuffer的区别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4793380/
我知道StringBuilder应该比String更受青睐,因为String将保存在常量字符串池中,并且为其分配新值不会覆盖以前的值。但是,StringBuilder是一个覆盖其先前值的对象。在什么情况下我应该使用String而不是StringBuilder,反之亦然。此外,如果我在Hibernate的支持类中有String类型的变量,我应该使用StringBuilder吗?怎么办?...Resultresult=(Result)criteria.list().get(0);classResult{Stringname;Stringfname;...} 最佳
我正在阅读有关Java编译器如何在可能的情况下将与“+”运算符连接的字符串编译为StringBuilder实例的信息,以及这如何使使用简单的“+”运算符更好,因为它们compiletothesamecode.(除非您在while循环中构建字符串,在这种情况下显然最好使用StringBuilder。)我还读到字符串上的.concat方法是最差的choiceallthetime(以至于它被Findbugs变成了一个错误!)。所以我决定自己在eclipse中编写一个小的java类来测试它。我的结果让我有点吃惊。我发现,如果我在eclipse中与在命令行中遵守并运行它们,则不同的方法相对更快或
我听说编译器(或者是JVM?)会自动使用StringBuilder进行一些字符串连接。什么时候才是明确宣布的合适时机?我不需要StringBuffer来实现线程安全。谢谢。 最佳答案 编译器会自动将它用于任何使用“+”的字符串连接。如果你想在一个循环中连接,你通常会显式地使用它。例如:StringBuilderbuilder=newStringBuilder();for(Stringname:names){builder.append(name);builder.append(",");}if(builder.length()>0)
如何通过调用args构造函数来创建数组?StringBuilder[]sb=newStringBuilder[100];但是如果我检查sb[0]它是空的。我希望sb[0]到sb[99]用“”初始化。以下导致错误:StringBuilder[]sb=newStringBuilder[100]("");编辑:或者我必须这样做:for(StringBuilderit:sb){it=newStringBuilder("");} 最佳答案 您的所有代码都将初始化一个数组,为100个StringBuilder做好准备。它实际上不会填充它。你可以
我需要写10,000x30,000个字符。单个stringbuilder是否能够容纳所有字符,还是我应该考虑一组stringbuilder?我无权访问测试用例,因此我无法亲自验证它。希望我能在这里找到答案。提前致谢。编辑:我尝试使用循环添加10000x30000个字符。我得到以下异常。Exceptioninthread"main"java.lang.OutOfMemoryError:Javaheapspaceatjava.util.Arrays.copyOf(Arrays.java:2367)atjava.lang.AbstractStringBuilder.expandCapacit
我问的问题与DifferencebetweenStringBuilderandStringBuffer有关但不一样。我想看看如果StringBuilder同时被两个线程修改会发生什么。我编写了以下类:publicclassThreadTester{publicstaticvoidmain(String[]args)throwsInterruptedException{RunnablethreadJob=newMyRunnable();ThreadmyThread=newThread(threadJob);myThread.start();for(inti=0;i最初我在StringCo
类StringBuilder定义了四个构造函数,它们都不接受StringBuilder,但以下编译:StringBuildersb=newStringBuilder(newStringBuilder("Hello"));这是否意味着匿名StringBuilder对象被编译器以某种方式在内部转换为字符串? 最佳答案 AStringBuilder是CharSequence(它实现了那个接口(interface)),和thereisaconstructortakingaCharSequence.这就是给定代码编译的原因:StringBui
我有一个C#程序需要将char缓冲区传递给非托管函数。我发现了两种似乎工作可靠的方法,但我不确定应该选择哪一种。这是非托管函数的签名。extern"C"__declspec(dllexport)intgetNextResponse(char*buffer);第一个选项是将缓冲区定义为StringBuilder,如下所示。//atclasslevel...[DllImport("mydll.dll")]staticexternintgetNextResponse(StringBuilderbuffer);//inmainmethodbody...StringBuildersb=newSt